package com.xyebank.ledger.service.common;

import java.util.Date;
import java.util.List;

/**
 * 表数据提供接口
 *
 * @param <T>
 */
public interface DataProvider<T> {
    /**
     * 无条件的读取记录　指定从第${fromIdx}条开始，取${tarNum}条
     *
     * @param fromIdx
     * @param tarNum
     * @return
     */
    List<T> get(Integer fromIdx, Integer tarNum);

    /**
     * 指定业务时间段取数据
     *
     * @param timeStart
     * @param timeEnd
     * @return
     */
    List<T> get(Date timeStart, Date timeEnd, Integer fromIdx, Integer tarNum);

    /**
     * 统计指定业务时间段的数据条数
     *
     * @param timeStart
     * @param timeEnd
     * @return
     */
    Integer count(Date timeStart, Date timeEnd);
}
